package org.yonggan.cmcc.report.biz

import org.apache.spark.rdd.RDD
import org.yonggan.cmcc.cache.JedisPoolUtil
import org.yonggan.cmcc.config.ConfigConstant

/**
  * 统计每个省份的充值成功数据量,
  * 并以地图的方式显示分布情况.
  */
object RechargeProvinceDistributionData {

  /**
    * 按照省份 分组 统计
    */
  def RechargeDataGroupedProvince(rdd: RDD[(List[Double],String,String,String,String)]) = {
    //   组转成为List : (订单总量 ,成功订单量， 金额 ，支付时长) , 省份编码 ,day h m）
    // 统计结果
    val reslut = rdd.map(m => {
      // 日期
      val day = m._3
      // 省份
      val pname = ConfigConstant.pCode2pName(m._2)
      ((day, pname), m._1.tail.head)
    }) reduceByKey (_+_)

    //     存储数据
    reslut.foreachPartition(itor => {

      //redis存储统计数据
      val jedis = JedisPoolUtil.getJedis
      itor.foreach(f => {
        jedis.hincrBy("P-" + f._1._1, f._1._2, f._2.toLong)
      })
      jedis.close()
    })
  }
}
